As known in the art, a “stackable switch” is a network switch that can operate independently as a standalone device or in concert with one or more other stackable switches in a “stack” or “stacking system.” FIG. 1A illustrates the front face of an exemplary stackable switch 100 according to an embodiment. As shown, stackable switch 100 includes a set of data ports 102, a set of stacking ports 104, and a console port 106. Data ports 102 are operable for connecting stackable switch 100 to one or more hosts and/or data networks. Stacking ports 104 are operable for linking stackable switch 100 to other stackable switches in the same stacking system/topology. Stacking ports 104 can be dedicated ports (i.e., ports designed specifically for stacking) or high bandwidth data uplink ports that operate in a stacking mode. Finally, console port 106 is operable for accessing the management console of stackable switch 100 in order to perform various device management functions.
FIG. 1B illustrates an exemplary stacking system 150 according to an embodiment. As shown, stacking system 150 comprises a number of stackable switches 152, 154, and 156 (each similar to stackable switch 100 of FIG. 1A) that have been linked together via their respective stacking ports. In the example of FIG. 1B, stackable switches 152, 154, and 156 form a ring topology. In addition, stackable switch 154 is designated as the “master” unit of stacking system 150, which means that switch 154 serves as the point of user contact for all management functions of system 150. For instance, stackable switch 154 can accept and process user commands directed to the overall configuration of stacking system 150. Stackable switch 154 can also communicate with non-master units 152 and 156 on an as-needed basis in order to propagate various types of management commands and data to those units.
Generally speaking, prior art stacking systems are limited to relatively simple topologies like the ring topology depicted in FIG. 1B. However, new stacking technologies, such as Brocade Communications Systems' “HyperEdge” technology, support more complex topologies (e.g., arbitrary meshes). These complex topologies are beneficial because they can provide better performance (through reduced switch-to-switch latency) and superior resiliency (via redundant stacking paths). In addition, HyperEdge supports a feature known as “mixed” stacking, which allows high-end stackable switches (i.e., switches with more features, ports, and/or bandwidth) to be combined with low-end stackable switches (i.e., switches with fewer features, ports, and/or bandwidth) in a single stacking system. This mixing of high-end and low-end units can increase the scalability and cost effectiveness of the system.
Unfortunately, while complex topology support and mixed stacking have clear benefits for users, they can also complicate stacking system administration and management, particularly in instances where an administrator wishes to make topology configuration changes. For example, consider stacking system 200 depicted in FIGS. 2A and 2B, which comprises three high-end switches 202, 204, 206 and three low-end switches 208, 210, 212 that are interconnected via a mesh-like topology. High-end switch 202 is the master unit in this configuration. Assume that an administrator attempts to remove the stacking link between high-end switch 206 and low-end switch 212 from the system's topology configuration as shown in FIG. 2A. In this scenario, the removal of the stacking link will cause low-end switch 212 to be unreachable by the master unit (i.e., high-end switch 202), and thus will break the system (since switch 202 can no longer communicate management commands/data to switch 212).
As another example, assume that the administrator attempts to remove the stacking link between high-end switches 202 and 204 from the system's topology configuration as shown in FIG. 2B. In this scenario, the removal of the stacking link will force traffic between high-end switches 202 and 204 to flow though low-end switches 208 and 210. This, in turn, can result in congestion and reduced system performance, since low-end switches will typically have less bandwidth capacity on their stacking ports than high-end switches (e.g., 10 GB/port on low-end switches vs. 40 GB/port on high-end switches).